#ifndef DBOPTVIEW_H
#define DBOPTVIEW_H

#include <QWidget>
#include <QTableView>
#include <QStandardItemModel>
#include "baseDB.h"
#include "customscroll.h"


const QString tabStyleSheetRaw = "QScrollBar{"
                                 "background:white;"//背景色
                                 "width:20px;"
                                 "QScrollBar::sub-line{background:transparent;}"   //向上箭头样式
                                 "QScrollBar::add-line{background:transparent;}"   //向下箭头样式
                             "}"
                             "QScrollBar::handle{" //滑块样式
                                 "background:#d0d0d0; "
                                 "border:2px solid transparent;"
                                 "border-radius:10px;"
                                 "hover{background:#d0d0d0;}"
                             "}"
                             "QScrollBar::handle:vertical:hover{background:#a0a0a0;}"; //鼠标触及滑块样式-滑块颜色

const QString tabStyleSheet1 = "";
const QString tabStyleSheet2 = "";
const QString tabStyleSheet3 = "";
const QString tabStyleSheet4 = "";

class DBOptView : public QWidget
{
    Q_OBJECT
public:
    explicit DBOptView(QWidget *parent = nullptr);

    //界面显示级操作
    void setViewStyle();            //设置表格显示风格
    void setMoveEnable(bool flag = false);      //设置可手动滑动表格，默认不可滑动

    int getRows();                      //获取数据显示行数

    void setShowModel(QString dbName);

    //数据库级别操作
    bool loadDB(QString dbName, QString dbType = "QSQLITE");    //设置显示的数据库
    bool creatTab(QString tabStruct);   //创建数据库表
    bool deleteTab(QString tabName);   //创建数据库表
    QStringList getTabNames();       //获取数据库所有表名链表

    //表级别操作
    QStringList getHeaderList(QString tabName);        //获取数据库所有表头
    QStringList getShowHeaderList(QString tabName);    //获取显示的表头（有的表头需要隐藏不显示）
    QString getHeader(QString tabName,int index);       //获取指定位置字段头

    //获取当前显示位置

    //增加、插入一行数据接口  数据库添加数据，表格也要增加显示的数据，如果快速显示，而不是刷新整个表格

    //删除一行数据接口

    //数据查询接口

    //修改数据接口

protected:
    void resizeEvent(QResizeEvent *event);

signals:
    //显示位置变动信号
    //
public slots:

private:
    QTableView mTab;
    BaseDB mDB;
    CustomScroll *mTableMove;

};

#endif // DBOPTVIEW_H
